﻿using System;
using System.Collections.Generic;
using System.Text;

namespace InterfazGrafico.LibreriaConstantes.Elementos
{
    /// <summary>
    /// Define las constantes usadas en las listas para el interfaz gráfico.
    /// </summary>
    public class CListasFunciones
    {
        /// <summary>
        /// Lista interna de funciones de estandarización.
        /// </summary>
        private static List<string> _listaFuncionesEstandarizacion = null;

        /// <summary>
        /// Lista de funciones de estandarización.
        /// </summary>
        public List<string> ListaFuncionesEstandarizacion
        {
            get
            {
                if (_listaFuncionesEstandarizacion == null)
                {
                    _listaFuncionesEstandarizacion = new List<string>();
                    _listaFuncionesEstandarizacion.Add("primero");
                    _listaFuncionesEstandarizacion.Add("primero_nv");
                    _listaFuncionesEstandarizacion.Add("ultimo");
                    _listaFuncionesEstandarizacion.Add("ultimo_nv");
                    _listaFuncionesEstandarizacion.Add("posicion");
                    _listaFuncionesEstandarizacion.Add("largo");
                    _listaFuncionesEstandarizacion.Add("corto");
                    _listaFuncionesEstandarizacion.Add("mas");
                    _listaFuncionesEstandarizacion.Add("menos");
                    _listaFuncionesEstandarizacion.Add("menor");
                    _listaFuncionesEstandarizacion.Add("menor_nc");
                    _listaFuncionesEstandarizacion.Add("mayor");
                    _listaFuncionesEstandarizacion.Add("mayor_nc");
                }
                return _listaFuncionesEstandarizacion;
            }
        }

        /// <summary>
        /// Lista interna de funciones de selección de duplicados.
        /// </summary>
        private static List<string> _listaFuncionesSeleccionDuplicados = null;

        /// <summary>
        /// Lista de funciones de selección de duplicados.
        /// </summary>
        public List<string> ListaFuncionesSeleccionDuplicados
        {
            get
            {
                if (_listaFuncionesSeleccionDuplicados == null)
                {
                    _listaFuncionesSeleccionDuplicados = new List<string>();
                    _listaFuncionesSeleccionDuplicados.Add("MP-");
                    _listaFuncionesSeleccionDuplicados.Add("MP+");
                    _listaFuncionesSeleccionDuplicados.Add("MU-");
                    _listaFuncionesSeleccionDuplicados.Add("MU+");
                    _listaFuncionesSeleccionDuplicados.Add("MN+");
                    _listaFuncionesSeleccionDuplicados.Add("MD-");
                    _listaFuncionesSeleccionDuplicados.Add("MM+");
                    _listaFuncionesSeleccionDuplicados.Add("MM-");
                    _listaFuncionesSeleccionDuplicados.Add("ME-");
                }
                return _listaFuncionesSeleccionDuplicados;
            }
        }

        /// <summary>
        /// Lista interna de funciones de transformación.
        /// </summary>
        private static List<string> _listaFuncionesTransformacion = null;

        /// <summary>
        /// Lista de funciones de transformación.
        /// </summary>
        public List<string> ListaFuncionesTransformacion
        {
            get
            {
                if (_listaFuncionesTransformacion == null)
                {
                    _listaFuncionesTransformacion = new List<string>();
                    _listaFuncionesTransformacion.Add("buscar");
                    _listaFuncionesTransformacion.Add("buscar_expresion");
                    _listaFuncionesTransformacion.Add("concatenar_campo");
                    _listaFuncionesTransformacion.Add("concatenar_campo_espacio");
                    _listaFuncionesTransformacion.Add("concatenar_valor");
                    _listaFuncionesTransformacion.Add("copiar_valor");
                    _listaFuncionesTransformacion.Add("copiar_campo");
                    _listaFuncionesTransformacion.Add("convertir_fecha");
                    _listaFuncionesTransformacion.Add("mayusculas");
                    _listaFuncionesTransformacion.Add("minusculas");
                    _listaFuncionesTransformacion.Add("reemplazar");
                    _listaFuncionesTransformacion.Add("eliminar");
                    _listaFuncionesTransformacion.Add("substring");
                    _listaFuncionesTransformacion.Add("trim");
                    _listaFuncionesTransformacion.Add("transformar_mascara");
                    _listaFuncionesTransformacion.Add("obtener_mascara");
                    _listaFuncionesTransformacion.Add("token");
                }
                return _listaFuncionesTransformacion;
            }
        }

        /// <summary>
        /// Lista interna de criterios de comparación.
        /// </summary>
        private static List<string> _listaCriteriosComparacion = null;

        /// <summary>
        /// Lista de criterios de comparación.
        /// </summary>
        public List<string> ListaCriteriosComparacion
        {
            get
            {
                if (_listaCriteriosComparacion == null)
                {
                    _listaCriteriosComparacion = new List<string>();
                    _listaCriteriosComparacion.Add("-");
                    _listaCriteriosComparacion.Add("=");
                    _listaCriteriosComparacion.Add("<");
                    _listaCriteriosComparacion.Add(">");
                    _listaCriteriosComparacion.Add("!=");
                }
                return _listaCriteriosComparacion;
            }
        }

        /// <summary>
        /// Lista interna de funciones de comparación de datos.
        /// </summary>
        private static List<string> _listaFuncionesComparacion = null;

        /// <summary>
        /// Lista de funciones de comparación de datos.
        /// </summary>
        public List<string> ListaFuncionesComparacion
        {
            get
            {
                if (_listaFuncionesComparacion == null)
                {
                    _listaFuncionesComparacion = new List<string>();
                    _listaFuncionesComparacion.Add("iguales");
                    _listaFuncionesComparacion.Add("igualesA");
                    _listaFuncionesComparacion.Add("nombre");
                    _listaFuncionesComparacion.Add("nombres");
                    _listaFuncionesComparacion.Add("primerosN");
                    _listaFuncionesComparacion.Add("sexo");
                    _listaFuncionesComparacion.Add("AMayorB");
                    _listaFuncionesComparacion.Add("AMenorB");
                    _listaFuncionesComparacion.Add("diferencia");
                    _listaFuncionesComparacion.Add("diferenciaDias");
                    _listaFuncionesComparacion.Add("fechasIguales");
                    _listaFuncionesComparacion.Add("flag");
                    _listaFuncionesComparacion.Add("SiNo");
                    _listaFuncionesComparacion.Add("soundex");
                    _listaFuncionesComparacion.Add("nysiis");
                    _listaFuncionesComparacion.Add("levenshtein");
                }
                return _listaFuncionesComparacion;
            }
        }

        /// <summary>
        /// Lista interna de funciones de condición de transformación.
        /// </summary>
        private static List<string> _listaFuncionesCondicion = null;

        /// <summary>
        /// Lista de funciones de condición de transformación.
        /// </summary>
        public List<string> ListaFuncionesCondicion
        {
            get
            {
                if (_listaFuncionesCondicion == null)
                {
                    _listaFuncionesCondicion = new List<string>();
                    _listaFuncionesCondicion.Add("longitud_mayor_valor");
                    _listaFuncionesCondicion.Add("longitud_menor_valor");
                    _listaFuncionesCondicion.Add("longitud_mayor_campo");
                    _listaFuncionesCondicion.Add("longitud_menor_campo");
                    _listaFuncionesCondicion.Add("contiene");
                    _listaFuncionesCondicion.Add("expresion_regular");
                    _listaFuncionesCondicion.Add("es_numero");
                    _listaFuncionesCondicion.Add("numero_mayor_valor");
                    _listaFuncionesCondicion.Add("numero_menor_valor");
                    _listaFuncionesCondicion.Add("numero_mayor_campo");
                    _listaFuncionesCondicion.Add("numero_menor_campo");
                    _listaFuncionesCondicion.Add("es_fecha");
                    _listaFuncionesCondicion.Add("fecha_mayor_valor");
                    _listaFuncionesCondicion.Add("fecha_menor_valor");
                    _listaFuncionesCondicion.Add("fecha_mayor_campo");
                    _listaFuncionesCondicion.Add("fecha_menor_campo");
                }
                return _listaFuncionesCondicion;
            }
        }
    }
}
 